package com.gitee.jnxj.nraft.common.log;

import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * 日志条目
 *
 * @author 江南小俊
 * @since 2021/7/13
 **/
@Builder
@Data
@ToString
public class LogEntry {
    private LogKey key;
    private LogValue value;

    @Builder
    @ToString
    @Data
    @EqualsAndHashCode
    public static class LogKey {
        /**
         * 日志条目id 自增连续
         **/

        private long keyId;
    }

    @Builder
    @ToString
    @Data
    public static class LogValue {
        /**
         * 任期
         **/
        private long term;
        /**
         * 是否提交
         **/
        private boolean commit;
        /**
         * 复制状态机指令
         **/
        private String command;
    }
}
